﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Runtime.Serialization;

using Ivy.Common.Framework.Base;

namespace Hsmp.SocietyOperation.Entity
{
    [Serializable]
    [DataContract]
    public class SocietyManagementMemberRegister : DataEntityBase
    {
        #region  Variable & constant
        Int32 lMemberUserKey = -1;
        Int32 lMemberSocietyKey = -1;
        string lUserLoginID = string.Empty;
        string lSocietyName = string.Empty;
        DateTime lStartDateOfMembership = DateTime.Now;
        Nullable<DateTime> lEndDateOfMembership = null;
        #endregion  Variable & constant

        #region Constructor & Destructor
        public SocietyManagementMemberRegister()
            : base()
        {
            this.Sys_DeleteType = DeleteType.SoftDeleteOnly;
        }
        #endregion Constructor & Destructor

        #region Properties
        [DataMember]
        public Int32 MemberUserKey
        {
            get
            {
                return lMemberUserKey;
            }
            set
            {
                lMemberUserKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public Int32 MemberSocietyKey
        {
            get
            {
                return lMemberSocietyKey;
            }
            set
            {
                lMemberSocietyKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserLoginID
        {
            get
            {
                return lUserLoginID;
            }
            set
            {
                lUserLoginID = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string SocietyName
        {
            get
            {
                return lSocietyName;
            }
            set
            {
                lSocietyName = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public DateTime StartDateOfMembership
        {
            get
            {
                return lStartDateOfMembership;
            }
            set
            {
                lStartDateOfMembership = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public Nullable<DateTime> EndDateOfMembership
        {
            get
            {
                return lEndDateOfMembership;
            }
            set
            {
                lEndDateOfMembership = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        #endregion Properties

        #region Public Methods
        #endregion Public Methods

        #region Events
        #endregion Events

        #region Private Methods
        #endregion Private Methods

    }
}
